AlphaTk version 7.3

Alpha was originally designed to run on MacOS, and simply used Tcl
internally as a scripting and extension language.

AlphaTk emulates the Tcl commands which Alpha originally exported
from C: there are several hundred of these which are used to create
windows, menus, dialogs, and handle editing, searching etc. All of
these had to be written from scratch. The rest of the Tcl code which
had been written over the years to make Alpha a sophisticated
'mode-aware' text editor is now more or less shared by the two
different versions (after extensive work to make it independent of
the differences between Tk and Alpha's views of the world).

Since this new version is a complete reimplementation in Tk (the
original was in C), it is a separate product and has different
licensing, copyright and payment methods.  Registered users of Alpha on
MacOS do not receive free licenses to AlphaTk on any platform.  I
realise some folk may not like that, but the only way I could justify
the time I've put into AlphaTk over the last year is to make it a
shareware product.

This MacOS heritage is good because the tens of thousands of lines of
useful Tcl code which had written can now be used cross platform, but
it does have its drawbacks.  First, there are many capabilities of
Alpha on MacOS which cannot (or at least cannot easily) be emulated in
Tk: for example apple-events, icons in menus, dynamic menu items, drag
and drop, syntax colouring of text, multi-line searching in text
widgets, ...  Second, there are some nice things which Tk has which
Alpha on MacOS never had, for example a rich set of widgets.  Third,
bindings in Alpha and Tk have historically been slightly differently
interpreted: Tk scans the 'bindtags' list and finds the first item
which matches a given event, only resolving precedence between bindings
at the same level in the bindtags list.  Alpha also maintains something
like a bindtags list, but first picks the closest binding at _any_
level in that list.  Only if more than one binding matches equally well
does Alpha consult the bindtags list to see which should be activated.
This isn't so simple to implement in Tk.

What about speed issues? With the exception of syntax-based colouring
of text, I see no trouble with the speed of this Tk version on a modern
machine. Colouring is, of course, quite an important feature of a good
text editor. Implementing it really well will probably require
modifications to Tk's text widget. In the meantime, there is an
implementation in Tcl, which works (turn on the global 'coloring'
flag), but is rather slow. It could probably be improved.  

Mac's have command, shift, option and control keys.  Windows machines
seem only to have shift, control and alt keys (the 'fn' and 'windows' 
keys are not accessible from Tk, I believe).  This means on windows
there is a 'meta' modifier in some menu items which cannot be used. 
I'm not sure what the situation is on Unix.

There is one other speed-annoyance: switching to modes with large menus
is slow if you have a menu bar in each window. This is because Tk needs
to clone menus to insert them into menu bars, and cloning appears to be
slow. Hopefully the use of Tcl_Obj api in upcoming Tk releases will
speed this up. I use only a global menu bar now (see
Preferences->Platform Specific), and that's nice and fast.

Supported Platforms:

AlphaTk is known to run on:

Windows-NT 4.0sp3,sp5 with any of Tcl/Tk 8.0, 8.1, 8.2
Solaris running X-windows, with Tcl/Tk 8.0

I assume it will also run under many more platforms, but I simply
haven't tested it (however I have even tested running on a remote
machine with the X-display emulated on MacOS, and it worked, albeit
slowly!).  Please tell me what other platforms you've got it running
on, and I'll add them to the list.

AlphaTk's API:

This is a pre-release, and the api has not yet stabilised (at all). The
only thing which is more or less guaranteed is that list of standard
Tcl commands implemented by the original MacOS version of Alpha, which
are in the "Alpha Commands" help file. Commands listed in other help
files ("Extending Alpha" for instance) are also supported. However the
large number of other commands implemented in the various alpha_xxx.tcl
files are not guaranteed to exist. This will change, gradually. The
Alpha editing window api needs to be finalised, for instance, and then
it will be guaranteed.

Contributions are welcome...

AlphaTk known bugs:

When you are being prompted in the status bar, if you switch to
another application and then back to Alpha, Alpha will not let you
interact with it until you manually click in the status bar entry
field.  This appears to be a problem with the focus being lost, and
happens on WinNT at least.

Recent changes to AlphaTk (see 'Changes' file for what's happened to
the AlphaTcl library (which is the code in Alpha/Tcl/*); this just
refers to the AlphaTk implementation):

7.3a6 - released.

Better handling of native and non-native paths on Windows.
Much better forward/backward word functionality (using Mode-dependent
definitions of words as in Alpha on MacOS).  Syntax colouring of
windows now works pretty perfectly, apart from the speed.
Better window splitting (including via mouse), and more robust
cleanup of Window information after manual destruction (destroy rather
than using AlphaTk's menus or gui).  killWindow now only ever called
once per window.  Flag showFullPathsInWindowTitles now available
in Window prefs dialog.  Use native colours more effectively now.
Much better double-click word selection in window.  Better support
for password dialogs.

7.3a5 - released.

Some fixes for Unix.  Focus changes seem to have caused some
minor problems on windows in Tk 8.2.0 which I've fixed. 
regModeKeywords works with -a and other colours too.
spacesToTabs and vice-versa implemented.
Other minor fixes.

7.3a4 - released.

Minimisation/maximisation of menubar does same to all other windows.
Various minor fixes.

7.3a3 - released.

Startup of runalpha.tcl with relative path name of file to edit now
works.

7.3a2 - released.

Many minor bugfixes.

7.3a1 - first public release